﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;

namespace DataAccess
{
    public class SqlAccess
    {
        private static string strCon = @"Data Source = .\SQLEXPRESS; Initial Catalog=qlks;Integrated Security=True";

        #region Hàm lấy 1 bảng
        public static DataTable executeQuery(string sql)
        {
            SqlConnection cn = new SqlConnection(strCon);
            SqlCommand cmd = new SqlCommand();
            cmd.Connection = cn;
            cmd.CommandText = sql;

            SqlDataAdapter dt = new SqlDataAdapter(cmd);
            DataTable kq = new DataTable();
            dt.Fill(kq);
            return kq;
        }
        #endregion

        #region Hàm lấy 1 bảng theo DataSet
        public static DataSet GetTable(string tenbang)
        {
            SqlConnection cn = new SqlConnection(strCon);
            string sql = "select * from " + tenbang;
            SqlDataAdapter da = new SqlDataAdapter(sql, cn);
            DataSet ds = new DataSet();
            da.Fill(ds);
            cn.Close();
            return ds;
        }
        #endregion

        #region Hàm lấy 1 bảng theo DataTable
        public static DataTable LayBang(string ten)
        {
            SqlConnection con = new SqlConnection(strCon);
            string sql = "select * from " + ten;
            SqlDataAdapter da = new SqlDataAdapter(sql, con);
            DataTable dt = new DataTable();
            da.Fill(dt);
            return dt;
        }
        #endregion

        #region Hàm dùng để thêm xóa sửa
        public static string ExecuteNonQuery(string sql)
        {
            {
                try
                {
                    SqlConnection cn = new SqlConnection(strCon);
                    cn.Open();
                    SqlCommand cmd = new SqlCommand();
                    cmd.Connection = cn;
                    cmd.CommandText = sql;
                    cmd.ExecuteNonQuery();
                    cn.Close();
                    return "True";
                }
                catch(Exception ex)
                {
                    return ex.ToString();
                }
            }
        }
        #endregion

        #region Hàm dùng cập nhật tình trạng phòng
        public static void CapNhatTrangThaiPhong(int luachon, int ma)
        {
            SqlConnection con = new SqlConnection(strCon);
            con.Open();

            SqlCommand cmd = new SqlCommand();
            cmd.Connection = con;
            string sql = "UPDATE Phong SET TinhTrangPhong = N'Đã thuê' WHERE maphong = " + ma;
            //thêm mới phiếu thuê
            if (luachon == 1)
            {
                sql = "UPDATE Phong SET TinhTrangPhong = N'Đã thuê' WHERE maphong = " + ma;

            }
            //trả phòng
            else if (luachon == 2)
            {
                sql = "UPDATE Phong SET TinhTrangPhong = 'Trong'  WHERE maphong = " + ma;
            }

            cmd.CommandText = sql;
            cmd.CommandType = CommandType.Text;
            cmd.ExecuteNonQuery();
        }
        #endregion

        #region Hàm dùng cập nhật tình trạng phiếu thuê
        public static void CapNhatTrangThaiPhieu(int luachon, int ma)
        {
            SqlConnection con = new SqlConnection(strCon);
            con.Open();

            SqlCommand cmd = new SqlCommand();
            cmd.Connection = con;
            string sql = "UPDATE PhieuThuePhong SET TinhTrang = 'Dang thue' WHERE maphieuthue = " + ma;
            //thêm mới phiếu thuê
            if (luachon == 1)
            {
                sql = "UPDATE PhieuThuePhong SET TinhTrang = 'Dang thue' WHERE maphieuthue = " + ma;

            }
            //trả phòng
            else if (luachon == 2)
            {
                sql = "UPDATE PhieuThuePhong SET TinhTrang = N'Đã trả'  WHERE maphieuthue = " + ma;
            }

            cmd.CommandText = sql;
            cmd.CommandType = CommandType.Text;
            cmd.ExecuteNonQuery();
        }
        #endregion

        #region Hàm dùng lấy danh sách phòng theo tình trạng
        public static DataSet LayPhong()
        {
            SqlConnection cn = new SqlConnection(strCon);
            string sql = "select * from phong where tinhtrangphong = 'Trong'";
            SqlDataAdapter da = new SqlDataAdapter(sql, cn);
            DataSet ds = new DataSet();
            da.Fill(ds);
            cn.Close();
            return ds;
        }
        #endregion

        #region Hàm dùng lấy danh sách phiếu thuê theo tình trạng
        public static DataSet LayPhieu()
        {
            SqlConnection cn = new SqlConnection(strCon);
            string sql = "select * from phieuthuephong where tinhtrang = 'Dang thue'";
            SqlDataAdapter da = new SqlDataAdapter(sql, cn);
            DataSet ds = new DataSet();
            da.Fill(ds);
            cn.Close();
            return ds;
        }
        #endregion
    }
}
